Regression Test Selection for Distributed Software Histories
نویسندگان
چکیده
Regression test selection analyzes incremental changes to a codebase and chooses to run only those tests whose behavior may be affected by the latest changes in the code. By focusing on a small subset of all the tests, the testing process runs faster and can be more tightly integrated into the development process. Existing techniques for regression test selection consider two versions of the code at a time, effectively assuming a development process where changes to the code occur in a linear sequence. Modern development processes that use distributed version-control systems are more complex. Software version histories are generally modeled as directed graphs; in addition to version changes occurring linearly, multiple versions can be related by other commands, e.g., branch, merge, rebase, cherry-pick, revert, etc. This paper describes a regression test-selection technique for software developed using modern distributed version-control systems. By modeling different branch or merge commands directly in our technique, it computes safe test sets that can be substantially smaller than applying previous techniques to a linearization of the software history. We evaluate our technique on software histories of several large opensource projects. The results are encouraging: our technique obtained an average of 10.89× reduction in the number of tests over an existing technique while still selecting all tests whose behavior may differ.
منابع مشابه
Distributed Black-Box Software Testing Using Negative Selection
In the software development process, testing is one of the most human intensive steps. Many researchers try to automate test case generation to reduce the manual labor of this step. Negative selection is a famous algorithm in the field of Artificial Immune System (AIS) and many different applications has been developed using its idea. In this paper we have designed a new algorithm based on nega...
متن کاملRegression Test Selection for C++ Software
Regression testing is an important but expensive software maintenance activity performed with the aim of providing confidence in modified software. Regression test selection techniques reduce the cost of regression testing by selecting test cases for a modified program from a previously existing test suite. Many researchers have addressed the regression test selection problem for procedural lan...
متن کاملRT-Selection : A Regression Test Selection Technique Using Textual Differencing and Change Impact Analysis
Regression testing intended to provide confidence that newly introduced changes do not obstruct the behaviours of the existing and unchanged parts of the software. One of simple and basic regression testing techniques is retest-all, but it requires lot of time and cost. The regression test selection technique selects a subset of previous test cases to retest the changed software. It, therefore,...
متن کاملA Safe , E cient Regression Test Selection
Regression testing is an expensive but necessary maintenance activity performed on modiied software to provide conndence that changes are correct and do not adversely aaect other portions of the software. A regression test selection technique chooses, from an existing test set, tests that are deemed necessary to validate modiied software. We present a new technique for regression test selection...
متن کاملAnalyzing Regression Test Selection Techniques
Regression testing is a necessary but expensive maintenance activity aimed at showing that code has not been adversely affected by changes. Regression test selection techniques reuse tests from an existing test suite to test a modified program. Many regression test selection techniques have been proposed; however, it is difficult to compare and evaluate these techniques because they have differ...
متن کامل